Rules for integrands of the form  (((d x))^m) (((a+b Log[c (x^n)]))^p)

1:  ∫((((a+b Log[c (x^n)]))^p)/x) dx

Reference: CRC 491

Derivation: Integration by substitution

Basis: ((F[a+b Log[c (x^n)]])/x)==(1/(b n)) Subst[F[x],x,a+b Log[c (x^n)]] (∂_x)(a+b Log[c (x^n)])

Rule:

∫((((a+b Log[c (x^n)]))^p)/x)dx  ⟶  (1/(b n)) Subst[∫(x^p)dx,x,a+b Log[c (x^n)]]

Program code:

Int[(a_.+b_.*Log[c_.*x_^n_.])/x_,x_Symbol] :=
  (a+b*Log[c*x^n])^2/(2*b*n) /;
FreeQ[{a,b,c,n},x]

Int[(a_.+b_.*Log[c_.*x_^n_.])^p_./x_,x_Symbol] :=
  1/(b*n)*Subst[Int[x^p,x],x,a+b*Log[c*x^n]] /;
FreeQ[{a,b,c,n,p},x]

2.  ∫(((d x))^m) (((a+b Log[c (x^n)]))^p)dx  when  m≠-1 ∧ p>0

1:  ∫(((d x))^m) (a+b Log[c (x^n)])dx  when  m≠-1 ∧ a (m+1)-b n==0

Note: Optional rule for special case returns a single term.

Rule: If  m≠-1, then

∫(((d x))^m) (a+b Log[c (x^n)])dx  ⟶  ((b (((d x))^(m+1)) Log[c (x^n)])/(d (m+1)))

Program code:

Int[(d_.*x_)^m_.*(a_.+b_.*Log[c_.*x_^n_.]),x_Symbol] :=
  b*(d*x)^(m+1)*Log[c*x^n]/(d*(m+1)) /;
FreeQ[{a,b,c,d,m,n},x] && NeQ[m,-1] && EqQ[a*(m+1)-b*n,0]

2:  ∫(((d x))^m) (((a+b Log[c (x^n)]))^p)dx  when  m≠-1 ∧ p>0

Reference: G&R 2.721.1, CRC 496, A&S 4.1.51

Derivation: Integration by parts

Basis: (∂_x)(((a+b Log[c (x^n)]))^p)==((b n p (((a+b Log[c (x^n)]))^(p-1)))/x)

Rule: If  m≠-1 ∧ p>0, then

∫(((d x))^m) (((a+b Log[c (x^n)]))^p)dx  ⟶  (((((d x))^(m+1)) (((a+b Log[c (x^n)]))^p))/(d(m+1)))-((b n p)/(m+1))∫(((d x))^m) (((a+b Log[c (x^n)]))^(p-1))dx

Program code:

Int[(d_.*x_)^m_.*(a_.+b_.*Log[c_.*x_^n_.]),x_Symbol] :=
  (d*x)^(m+1)*(a+b*Log[c*x^n])/(d*(m+1)) - b*n*(d*x)^(m+1)/(d*(m+1)^2) /;
FreeQ[{a,b,c,d,m,n},x] && NeQ[m,-1]

Int[(d_.*x_)^m_.*(a_.+b_.*Log[c_.*x_^n_.])^p_.,x_Symbol] :=
  (d*x)^(m+1)*(a+b*Log[c*x^n])^p/(d*(m+1)) - b*n*p/(m+1)*Int[(d*x)^m*(a+b*Log[c*x^n])^(p-1),x] /;
FreeQ[{a,b,c,d,m,n},x] && NeQ[m,-1] && GtQ[p,0]

3:  ∫(((d x))^m) (((a+b Log[c (x^n)]))^p)dx  when  m≠-1 ∧ p<-1

Reference: G&R 2.724.1, CRC 495

Derivation: Inverted integration by parts

Rule: If  m≠-1 ∧ p<-1, then

∫(((d x))^m) (((a+b Log[c (x^n)]))^p)dx  ⟶  (((((d x))^(m+1)) (((a+b Log[c (x^n)]))^(p+1)))/(b d n (p+1)))-((m+1)/(b n(p+1)))∫(((d x))^m) (((a+b Log[c (x^n)]))^(p+1))dx

Program code:

Int[(d_.*x_)^m_.*(a_.+b_.*Log[c_.*x_^n_.])^p_,x_Symbol] :=
  (d*x)^(m+1)*(a+b*Log[c*x^n])^(p+1)/(b*d*n*(p+1)) - (m+1)/(b*n*(p+1))*Int[(d*x)^m*(a+b*Log[c*x^n])^(p+1),x] /;
FreeQ[{a,b,c,d,m,n},x] && NeQ[m,-1] && LtQ[p,-1]

4.  ∫((((d x))^m)/(Log[c (x^n)]))dx  when  m==n-1

1:  ∫((x^m)/(Log[c (x^n)]))dx  when  m==n-1

Derivation: Integration by substitution

Note: The resulting antiderivative of this unessential rule is expressed in terms of LogIntegral instead of ExpIntegralEi.

Rule: If  m==n-1, then

∫((x^m)/(Log[c (x^n)]))dx  ⟶  (1/n) Subst[∫(1/(Log[c x]))dx,x,(x^n)]

Program code:

Int[x_^m_./Log[c_.*x_^n_],x_Symbol] :=
  1/n*Subst[Int[1/Log[c*x],x],x,x^n] /;
FreeQ[{c,m,n},x] && EqQ[m,n-1]

2:  ∫((((d x))^m)/(Log[c (x^n)]))dx  when  m==n-1

Derivation: Piecewise constant extraction

Rule: If  m==n-1, then

∫((((d x))^m)/(Log[c (x^n)]))dx  ⟶  ((((d x))^m)/(x^m)) ∫((x^m)/(Log[c (x^n)]))dx

Program code:

Int[(d_*x_)^m_./Log[c_.*x_^n_],x_Symbol] :=
  (d*x)^m/x^m*Int[x^m/Log[c*x^n],x] /;
FreeQ[{c,d,m,n},x] && EqQ[m,n-1]

5:  ∫(x^m) (((a+b Log[c x]))^p)dx  when  m∈ℤ

Derivation: Integration by substitution

Basis: If  m∈ℤ, then (x^m) F[Log[c x]]==(1/(c^(m+1))) Subst[(e^((m+1) x)) F[x],x,Log[c x]] (∂_x)Log[c x]

Rule: If  m∈ℤ, then

∫(x^m) (((a+b Log[c x]))^p)dx  ⟶  (1/(c^(m+1))) Subst[∫(e^((m+1) x)) (((a+b x))^p)dx,x,Log[c x]]

Program code:

Int[x_^m_.*(a_.+b_.*Log[c_.*x_])^p_,x_Symbol] :=
  1/c^(m+1)*Subst[Int[E^((m+1)*x)*(a+b*x)^p,x],x,Log[c*x]] /;
FreeQ[{a,b,c,p},x] && IntegerQ[m]

6:  ∫(((d x))^m) (((a+b Log[c (x^n)]))^p)dx

Derivation: Piecewise constant extraction and integration by substitution

Basis: (∂_x)((((d x))^(m+1))/(((c (x^n)))^((m+1)/n)))==0

Basis: (((((c (x^n)))^k) F[Log[c (x^n)]])/x)==(1/n) Subst[(e^(k x)) F[x],x,Log[c (x^n)]] (∂_x)Log[c (x^n)]

Rule:

∫(((d x))^m) (((a+b Log[c (x^n)]))^p)dx  ⟶  ((((d x))^(m+1))/(d (((c (x^n)))^((m+1)/n)))) ∫(((((c (x^n)))^((m+1)/n)) (((a+b Log[c (x^n)]))^p))/x)dx  ⟶  ((((d x))^(m+1))/(d n (((c (x^n)))^((m+1)/n)))) Subst[∫(e^(((m+1)/n) x)) (((a+b x))^p)dx,x,Log[c (x^n)]]

Program code:

Int[(d_.*x_)^m_.*(a_.+b_.*Log[c_.*x_^n_.])^p_,x_Symbol] :=
  (d*x)^(m+1)/(d*n*(c*x^n)^((m+1)/n))*Subst[Int[E^((m+1)/n*x)*(a+b*x)^p,x],x,Log[c*x^n]] /;
FreeQ[{a,b,c,d,m,n,p},x]

P:  ∫(((d (x^q)))^m) (((a+b Log[c (x^n)]))^p)dx

Derivation: Piecewise constant extraction

Basis: (∂_x)((((d (x^q)))^m)/(x^(m q)))==0

Rule:

∫(((d (x^q)))^m) (((a+b Log[c (x^n)]))^p)dx  ⟶  ((((d (x^q)))^m)/(x^(m q))) ∫(x^(m q)) (((a+b Log[c (x^n)]))^p)dx

Program code:

Int[(d_.*x_^q_)^m_*(a_.+b_.*Log[c_.*x_^n_.])^p_.,x_Symbol] :=
  (d*x^q)^m/x^(m*q)*Int[x^(m*q)*(a+b*Log[c*x^n])^p,x] /;
FreeQ[{a,b,c,d,m,n,p,q},x]

Int[(d1_.*x_^q1_)^m1_*(d2_.*x_^q2_)^m2_*(a_.+b_.*Log[c_.*x_^n_.])^p_.,x_Symbol] :=
  (d1*x^q1)^m1*(d2*x^q2)^m2/x^(m1*q1+m2*q2)*Int[x^(m1*q1+m2*q2)*(a+b*Log[c*x^n])^p,x] /;
FreeQ[{a,b,c,d1,d2,m1,m2,n,p,q1,q2},x]